Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Standarize gateway API asset deployment #74

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

rsevilla87
Copy link
Member

Type of change

  • Optimization

Description

The current logic for gateway API is meant to automatically provision the gateway pod , this is sometimes not optimal since turns out that this gateway deployment cannot be tuned due to operator reconciles.
So the idea of this PR is:

  • To assume that there's a running gateway pod, in the namespace specified by --gs-nw
  • The gateway is exposed by a load balancer service in the same namespace, specified by --gw-lb
  • There's a gatewayclass controller available, specified by --gw-class

Also, it uses the gatewayv1 rather than gatewayv1beta of the client

With these changes a execution of a benchmark in a cluster with a running gateway pod in the openshift-ingress namespace and a gatewayclass would be:

./bin/ingress-perf run --gw-api -c standard.yml --gw-lb my-gateway --gw-ns openshift-ingress --gw-class=istio
time="2024-11-14 16:26:34" level=info msg="Running ingress-perf (standarize-gw-api@6cee97ba0f5945f88d2ecfa0321f71e8879067c2) with uuid fea8b45c-d9ce-4e27-9120-cdb0f8f0f812" file="ingress-perf.go:62"
time="2024-11-14 16:26:34" level=info msg="Creating local indexer" file="runner.go:86"
time="2024-11-14 16:26:40" level=info msg="HAProxy version: haproxy28-2.8.10-1.rhaos4.17.el9.x86_64" file="runner.go:161"
time="2024-11-14 16:26:40" level=info msg="Deploying benchmark assets" file="runner.go:252"
time="2024-11-14 16:26:40" level=info msg="Gateway API mode enabled" file="runner.go:257"
time="2024-11-14 16:26:42" level=info msg="Waiting for gateway gateway in ns openshift-ingress to be programmed" file="runner.go:403"
time="2024-11-14 16:26:43" level=info msg="Running test 1/2" file="runner.go:168"
time="2024-11-14 16:26:43" level=info msg="Tool:wrk termination:http servers:45 concurrency:18 procs:1 connections:200 duration:10s http2:false" file="runner.go:169"
time="2024-11-14 16:26:44" level=info msg="Running sample 1/2: 10s" file="exec.go:102"
time="2024-11-14 16:26:59" level=info msg="http: Rps=29699 avgLatency=118ms P95Latency=176ms" file="exec.go:149"
time="2024-11-14 16:26:59" level=info msg="Sleeping for 10s" file="exec.go:152"
time="2024-11-14 16:27:09" level=info msg="Running sample 2/2: 10s" file="exec.go:102"

Related Tickets & Documents

  • Related Issue #
  • Closes #

@rsevilla87 rsevilla87 added the enhancement New feature or request label Nov 14, 2024
log.Debugf("Creating HTTPRoute...")
_, err := hrClientSet.GatewayV1beta1().HTTPRoutes(routesNamespace).Create(context.TODO(), &httproutes, metav1.CreateOptions{})
_, err = hrClientSet.GatewayV1().HTTPRoutes(r.igNamespace).Create(context.TODO(), &httproutes, metav1.CreateOptions{})
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/r.igNamespace/routesNamespace
to create the httproutes in ingress-perf instead of openshift-ingress

Signed-off-by: Raul Sevilla <[email protected]>
Signed-off-by: Raul Sevilla <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants